/*!
\mainpage
dune-dgmhd是基于间断有限元方法（Discontinous Gakerkin，DG）的、开源多成份磁流体动力学程序，应用于太阳物理、日地空间物理、恒星磁活动等天体物理研究领域、行星磁层、实验室等离子体和受控核聚变。

DG方法因在高精度算法构造和非均匀网格技术方面的优势而广泛应用于工程技术和科学计算。它结合了有限体积方法（Finite Volume，FV）和有限元方法（Finite element，FE）的思想，通过单元内基函数构造高精度算法，通过单元表面的通量捕捉激波，具备FV和FE方法的优势。Dune（Distributed and Unified Numerical Environment, 分布式的数值求解环境）是dune-dgmhd采用的开源软件框架，它允许我们大量使用来自开源社区的通用性程序模块，提供了去中心化的开发环境，从而有效地降低了我们的开发成本。

本文档按照用户和开发人员的学习路径组织内容，具体如下：

1，用户须知
\li \subpage install
\li \subpage gettingstart
\li \subpage howtoref

2，开发须知
\li \subpage develop-env
\li \subpage dune-book
\li \subpage pdelab-tutorial
\li \subpage fv-demo
\li \subpage dg-pdelab-demo
\li \subpage dgmhd
\li \subpage task

3，物理方程


4，测试集

5，模型和程序：太阳物理与日地空间物理

6，模型与程序：恒星磁活动


\page install 安装

待完善

\page gettingstart 开始一个模拟

待完善

\page howtoref 怎样引用

待完善

\page develop-env 开发环境

远程开发环境是基于曙光超算，编写、计算、调试和可视化均可以在其上进行。当然，也可以不使用该开发环境，自己另行配置开发环境，然后通过gitee协作开发。

\subsubsection 远程环境

\subsubsection 安装

\subsubsection 提交任务

\subsubsection 可视化



\page dune-book dune样例程序

Dune主要提供了两个层级的编程方式，一个层次是基于dune核心模块，一个层次是基于pdelab更高层级的模块。这部分提供一些样例程序，帮助开发者熟悉dune的开发方式。该部分样例程序主要来自于dune-book，另外还参考了dune-grid-howto。

\subsubsection fv

详见dune-book chaper 3；该部分包括四个程序，并行运行没有问题。

\subsubsection fem

详见dune-book；该部分包括三个程序。

\subsubsection pdelab

详见dune-book；该部分包括六个程序，不能并行，需要作必要修改；后面有pdelab tutorial，可以并行，所以这里就没有修改。后期完善文档的时候，可以找程序员改成并行的。

\page pdelab-tutorial pdelab入门

该部分程序来全部来自于dune-pde-tutorial，不过进行了一些修改，因为原来的程序大多数不并行的。dune-pdelab-tutorial中有文档，生成的pdf也可以在WPS共享文档中找到。修改的记录大致路下：

- possion eqaution与网格。tutorial00 线性版本, tutorial01 非线性版本, tutorial06 并行版本。相对于dune-book/pdelab中的pdelab-poisson-dirichlet.cc，tutorial00从程序员角度看写得更为专业，dune-book/fv中getting-started-poisson-fem.cc则是没有采用pdelab。
  - tutorial06基于YASP网格的并行，1D/2D/3D都没有问题
  - 改成UG网格，2D也没有问题，3D没有测试过。
  - UG没有1D的；1D的onggird不支持并行。
- 并行与方程。tutorial01是静态possion方程，tutorial03是时变的，tutorial04是方程组。
  - tutorial03 heat conduction，yasp2d/3d没有问题，ug的2d（调整loadBalance()与gridview的顺序）费了些功夫可以并行了，ug的3d可以并行
- MPIAMR
  - tutorial05实现了AMR的并行，需要安装parmetis和alugrid。但是后来细化出问题了，error_estimator有问题。
- ALU网格。暂时不管了。
- tutorial07

\page fv-demo FV方法

待完善

\page dg-pdelab-demo dg-demo

用于验证dune，DG，和开发团队能力的示例程序。

\page dgmhd dgmhd

正式的工作程序，基于此可以开展数值模拟研究工作。

\page task 当前开发任务 

待完善

\page no-attached 其他说明

**/
